Localize missing Appearance settings strings#152
Conversation
…ency) These four strings were added to SettingsView.swift's appearanceCard but never made it into the string catalog, so every locale fell back to the English source text. Adds de/es/fr/it/pt-PT/zh-Hans/zh-Hant translations. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
fitnessReadyLead() returns an already-localized String (via String(localized:)), but ReadinessChecklistCard.lead was typed LocalizedStringKey?, which SwiftUI treats as a lookup key rather than literal text. Retype to String? — Text(_:) accepts both, and this is the correct type for pre-resolved copy. Pre-existing break from commit 75a096a (PR ryanbr#81), unrelated to this branch's localization change; fixing here so PR #5's CI build passes. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Conflict was only a doc-comment collision in HealthView.swift: upstream independently fixed the same ReadinessChecklistCard.lead LocalizedStringKey/String type mismatch (with an added explanatory comment) that this branch's earlier commit also fixed. Kept upstream's version since it's functionally identical plus the comment. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
Merged — thank you! This was a clean, well-scoped fix: the four Appearance strings ("Sky behind cards" / "Card transparency" and their captions) really were missing from the catalog, so non-English users were seeing raw English there. Nice catch. Appreciated the care on the details too — reusing the existing catalog terminology so the rows read consistently with their neighbours, keeping it purely additive, and flagging the The |
What this PR does
Four strings under Settings → Appearance ("Sky behind cards" and its
caption, "Card transparency" and its caption) were added to
SettingsView.swift'sappearanceCardbut never made it intoStrand/Resources/Localizable.xcstrings, so every non-English locale fellback to the raw English source text instead of showing a translation.
Adds
de,es,fr,it,pt-PT,zh-Hans, andzh-Hantentries forall four strings, reusing existing catalog terminology (e.g. "Frecuencia
cardíaca"/"心率" for Heart Rate, "Fondo según el ciclo del día" for the
day-cycle background) so they read consistently with neighboring rows.
Also includes an unrelated one-line CI fix:
ReadinessChecklistCard.leadin
HealthView.swiftwas typedLocalizedStringKey?butfitnessReadyLead()returns an already-localizedString(viaString(localized:)), which broke the macOS build. Retyped toString?(the only usage is
Text(lead), which accepts both). This was apre-existing break from commit 75a096a (PR #81), not caused by this
branch, but needed fixing to get CI green here.
Note: pt-PT entries in this catalog are marked
needs_reviewthroughout(existing entries mix in Spanish words), and the four new ones follow that
same convention — worth a native pt-PT pass over the whole file at some
point.
Type of change
(Closest fit is "Documentation" for the string-catalog content; the
HealthView.swift change is a minimal, unrelated type fix needed for CI.)
How it was tested
Localizable.xcstrings: validated as JSON and confirmed all four keyscarry complete localization sets via a Python script.
HealthView.swift: built locally withxcodegen generate+xcodebuild -project Strand.xcodeproj -scheme Strand -destination "generic/platform=macOS" ARCHS="x86_64 arm64" ONLY_ACTIVE_ARCH=NO build— BUILD SUCCEEDED.
Checklist
swift testinPackages/<name>) — N/A, no package touchedandroid/— N/A, not touchedStrandDesigntokens — no hardcoded colors, fonts, or spacing — N/A, no UI code changeddocs/CONTRIBUTING.mdStrand.xcodeproj/) or any secrets/keystoresRelated issues
None